home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / spup.vim < prev    next >
Encoding:
Text File  |  2001-04-30  |  13.9 KB  |  278 lines

  1. " Vim syntax file
  2. " Language:     Speedup, plant simulator from AspenTech
  3. " Maintainer:   Stefan.Schwarzer <s.schwarzer@ndh.net>
  4. " URL:          http://www.ndh.net/home/sschwarzer/download/spup.vim
  5. " Last Change:  2001 Apr 29
  6. " Filename:     spup.vim
  7.  
  8. " Bugs
  9. " - in the appropriate sections keywords are always highlighted
  10. "   even if they are not used with the appropriate meaning;
  11. "   example: in
  12. "       MODEL demonstration
  13. "       TYPE
  14. "      *area AS area
  15. "   both "area" are highlighted as spupType.
  16. "
  17. " If you encounter problems or have questions or suggestions, mail me
  18.  
  19. " Remove old syntax stuff
  20. " For version 5.x: Clear all syntax items
  21. " For version 6.x: Quit when a syntax file was already loaded
  22. if version < 600
  23.     syntax clear
  24. elseif exists("b:current_syntax")
  25.     finish
  26. endif
  27.  
  28. " don't hightlight several keywords like subsections
  29. "let strict_subsections = 1
  30.  
  31. " highlight types usually found in DECLARE section
  32. if !exists("hightlight_types")
  33.     let highlight_types = 1
  34. endif
  35.  
  36. " one line comment syntax (# comments)
  37. " 1. allow appended code after comment, do not complain
  38. " 2. show code beginnig with the second # as an error
  39. " 3. show whole lines with more than one # as an error
  40. if !exists("oneline_comments")
  41.     let oneline_comments = 2
  42. endif
  43.  
  44. " Speedup SECTION regions
  45. syn case ignore
  46. syn region spupCdi        matchgroup=spupSection start="^CDI"        end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary
  47. syn region spupConditions matchgroup=spupSection start="^CONDITIONS" end="^\*\*\*\*" contains=spupConditionsSubs,@spupOrdinary,spupConditional,spupOperator,spupCode
  48. syn region spupDeclare    matchgroup=spupSection start="^DECLARE"    end="^\*\*\*\*" contains=spupDeclareSubs,@spupOrdinary,spupTypes,spupCode
  49. syn region spupEstimation matchgroup=spupSection start="^ESTIMATION" end="^\*\*\*\*" contains=spupEstimationSubs,@spupOrdinary
  50. syn region spupExternal   matchgroup=spupSection start="^EXTERNAL"   end="^\*\*\*\*" contains=spupExternalSubs,@spupOrdinary
  51. syn region spupFlowsheet  matchgroup=spupSection start="^FLOWSHEET"  end="^\*\*\*\*" contains=spupFlowsheetSubs,@spupOrdinary,spupStreams,@spupTextproc
  52. syn region spupFunction   matchgroup=spupSection start="^FUNCTION"   end="^\*\*\*\*" contains=spupFunctionSubs,@spupOrdinary,spupHelp,spupCode,spupTypes
  53. syn region spupGlobal     matchgroup=spupSection start="^GLOBAL"     end="^\*\*\*\*" contains=spupGlobalSubs,@spupOrdinary
  54. syn region spupHomotopy   matchgroup=spupSection start="^HOMOTOPY"   end="^\*\*\*\*" contains=spupHomotopySubs,@spupOrdinary
  55. syn region spupMacro      matchgroup=spupSection start="^MACRO"      end="^\*\*\*\*" contains=spupMacroSubs,@spupOrdinary,@spupTextproc,spupTypes,spupStreams,spupOperator
  56. syn region spupModel      matchgroup=spupSection start="^MODEL"      end="^\*\*\*\*" contains=spupModelSubs,@spupOrdinary,spupConditional,spupOperator,spupTypes,spupStreams,@spupTextproc,spupHelp
  57. syn region spupOperation  matchgroup=spupSection start="^OPERATION"  end="^\*\*\*\*" contains=spupOperationSubs,@spupOrdinary,@spupTextproc
  58. syn region spupOptions    matchgroup=spupSection start="^OPTIONS"    end="^\*\*\*\*" contains=spupOptionsSubs,@spupOrdinary
  59. syn region spupProcedure  matchgroup=spupSection start="^PROCEDURE"  end="^\*\*\*\*" contains=spupProcedureSubs,@spupOrdinary,spupHelp,spupCode,spupTypes
  60. syn region spupProfiles   matchgroup=spupSection start="^PROFILES"   end="^\*\*\*\*" contains=@spupOrdinary,@spupTextproc
  61. syn region spupReport     matchgroup=spupSection start="^REPORT"     end="^\*\*\*\*" contains=spupReportSubs,@spupOrdinary,spupHelp,@spupTextproc
  62. syn region spupTitle      matchgroup=spupSection start="^TITLE"      end="^\*\*\*\*" contains=spupTitleSubs,spupComment,spupConstant,spupError
  63. syn region spupUnit       matchgroup=spupSection start="^UNIT"       end="^\*\*\*\*" contains=spupUnitSubs,@spupOrdinary
  64.  
  65. " Subsections
  66. syn keyword spupCdiSubs        INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained
  67. syn keyword spupDeclareSubs    TYPE STREAM contained
  68. syn keyword spupEstimationSubs ESTIMATE SSEXP DYNEXP RESULT contained
  69. syn keyword spupExternalSubs   TRANSMIT RECEIVE contained
  70. syn keyword spupFlowsheetSubs  STREAM contained
  71. syn keyword spupFunctionSubs   INPUT OUTPUT contained
  72. syn keyword spupGlobalSubs     VARIABLES MAXIMIZE MINIMIZE CONSTRAINT contained
  73. syn keyword spupHomotopySubs   VARY OPTIONS contained
  74. syn keyword spupMacroSubs      MODEL FLOWSHEET contained
  75. syn keyword spupModelSubs      CATEGORY SET TYPE STREAM EQUATION PROCEDURE contained
  76. syn keyword spupOperationSubs  SET PRESET INITIAL SSTATE FREE contained
  77. syn keyword spupOptionsSubs    ROUTINES TRANSLATE EXECUTION contained
  78. syn keyword spupProcedureSubs  INPUT OUTPUT SPACE PRECALL POSTCALL DERIVATIVE STREAM contained
  79. " no subsections for Profiles
  80. syn keyword spupReportSubs     SET INITIAL FIELDS FIELDMARK DISPLAY WITHIN contained
  81. syn keyword spupUnitSubs       ROUTINES SET contained
  82.  
  83. " additional keywords for subsections
  84. if !exists( "strict_subsections" )
  85.     syn keyword spupConditionsSubs STOP PRINT contained
  86.     syn keyword spupDeclareSubs    UNIT SET COMPONENTS THERMO OPTIONS contained
  87.     syn keyword spupEstimationSubs VARY MEASURE INITIAL contained
  88.     syn keyword spupFlowsheetSubs  TYPE FEED PRODUCT INPUT OUTPUT CONNECTION OF IS contained
  89.     syn keyword spupMacroSubs      CONNECTION STREAM SET INPUT OUTPUT OF IS FEED PRODUCT TYPE contained
  90.     syn keyword spupModelSubs      AS ARRAY OF INPUT OUTPUT CONNECTION contained
  91.     syn keyword spupOperationSubs  WITHIN contained
  92.     syn keyword spupReportSubs     LEFT RIGHT CENTER CENTRE UOM TIME DATE VERSION RELDATE contained
  93.     syn keyword spupUnitSubs       IS A contained
  94. endif
  95.  
  96. " Speedup data types
  97. if exists( "highlight_types" )
  98.     syn keyword spupTypes act_coeff_liq area coefficient concentration contained
  99.     syn keyword spupTypes control_signal cond_liq cond_vap cp_mass_liq contained
  100.     syn keyword spupTypes cp_mol_liq cp_mol_vap cv_mol_liq cv_mol_vap contained
  101.     syn keyword spupTypes diffus_liq diffus_vap delta_p dens_mass contained
  102.     syn keyword spupTypes dens_mass_sol dens_mass_liq dens_mass_vap dens_mol contained
  103.     syn keyword spupTypes dens_mol_sol dens_mol_liq dens_mol_vap enthflow contained
  104.     syn keyword spupTypes enth_mass enth_mass_liq enth_mass_vap enth_mol contained
  105.     syn keyword spupTypes enth_mol_sol enth_mol_liq enth_mol_vap entr_mol contained
  106.     syn keyword spupTypes entr_mol_sol entr_mol_liq entr_mol_vap fraction contained
  107.     syn keyword spupTypes flow_mass flow_mass_liq flow_mass_vap flow_mol contained
  108.     syn keyword spupTypes flow_mol_vap flow_mol_liq flow_vol flow_vol_vap contained
  109.     syn keyword spupTypes flow_vol_liq fuga_vap fuga_liq fuga_sol contained
  110.     syn keyword spupTypes gibb_mol_sol heat_react heat_trans_coeff contained
  111.     syn keyword spupTypes holdup_heat holdup_heat_liq holdup_heat_vap contained
  112.     syn keyword spupTypes holdup_mass holdup_mass_liq holdup_mass_vap contained
  113.     syn keyword spupTypes holdup_mol holdup_mol_liq holdup_mol_vap k_value contained
  114.     syn keyword spupTypes length length_delta length_short liqfraction contained
  115.     syn keyword spupTypes liqmassfraction mass massfraction molefraction contained
  116.     syn keyword spupTypes molweight moment_inertia negative notype percent contained
  117.     syn keyword spupTypes positive pressure press_diff press_drop press_rise contained
  118.     syn keyword spupTypes ratio reaction reaction_mass rotation surf_tens contained
  119.     syn keyword spupTypes temperature temperature_abs temp_diff temp_drop contained
  120.     syn keyword spupTypes temp_rise time vapfraction vapmassfraction contained
  121.     syn keyword spupTypes velocity visc_liq visc_vap volume zmom_rate contained
  122.     syn keyword spupTypes seg_rate smom_rate tmom_rate zmom_mass seg_mass contained
  123.     syn keyword spupTypes smom_mass tmom_mass zmom_holdup seg_holdup contained
  124.     syn keyword spupTypes smom_holdup tmom_holdup contained
  125. endif
  126.  
  127. " stream types
  128. syn keyword spupStreams  mainstream vapour liquid contained
  129.  
  130. " "conditional" keywords
  131. syn keyword spupConditional  IF THEN ELSE ENDIF contained
  132. " Operators, symbols etc.
  133. syn keyword spupOperator  AND OR NOT contained
  134. syn match spupSymbol  "[,\-+=:;*/\"<>@%()]" contained
  135. syn match spupSpecial  "[&\$?]" contained
  136. " Surprisingly, Speedup allows no unary + instead of the -
  137. syn match spupError  "[(=+\-*/]\s*+\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained
  138. syn match spupError  "[(=+\-*/]\s*+\d\+\.\([ed][+-]\=\d\+\)\=\>"lc=1 contained
  139. syn match spupError  "[(=+\-*/]\s*+\d*\.\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained
  140. " String
  141. syn region spupString  start=+"+  end=+"+  oneline contained
  142. syn region spupString  start=+'+  end=+'+  oneline contained
  143. " Identifier
  144. syn match spupIdentifier  "\<[a-z][a-z0-9_]*\>" contained
  145. " Textprocessor directives
  146. syn match spupTextprocGeneric  "?[a-z][a-z0-9_]*\>" contained
  147. syn region spupTextprocError matchgroup=spupTextprocGeneric start="?ERROR"  end="?END"he=s-1 contained
  148. " Number, without decimal point
  149. syn match spupNumber  "-\=\d\+\([ed][+-]\=\d\+\)\=" contained
  150. " Number, allows 1. before exponent
  151. syn match spupNumber  "-\=\d\+\.\([ed][+-]\=\d\+\)\=" contained
  152. " Number allows .1 before exponent
  153. syn match spupNumber  "-\=\d*\.\d\+\([ed][+-]\=\d\+\)\=" contained
  154. " Help subsections
  155. syn region spupHelp  start="^HELP"hs=e+1  end="^\$ENDHELP"he=s-1 contained
  156. " Fortran code
  157. syn region spupCode  start="^CODE"hs=e+1  end="^\$ENDCODE"he=s-1 contained
  158. " oneline comments
  159. if oneline_comments > 3
  160.     oneline_comments = 2   " default
  161. endif
  162. if oneline_comments == 1
  163.     syn match spupComment  "#[^#]*#\="
  164. elseif oneline_comments == 2
  165.     syn match spupError  "#.*$"
  166.     syn match spupComment  "#[^#]*"  nextgroup=spupError
  167. elseif oneline_comments == 3
  168.     syn match spupComment  "#[^#]*"
  169.     syn match spupError  "#[^#]*#.*"
  170. endif
  171. " multiline comments
  172. syn match spupOpenBrace "{" contained
  173. syn match spupError  "}"
  174. syn region spupComment  matchgroup=spupComment2  start="{"  end="}"  keepend  contains=spupOpenBrace
  175.  
  176. syn cluster spupOrdinary  contains=spupNumber,spupIdentifier,spupSymbol
  177. syn cluster spupOrdinary  add=spupError,spupString,spupComment
  178. syn cluster spupTextproc  contains=spupTextprocGeneric,spupTextprocError
  179.  
  180. " define syncronizing; especially OPERATION sections can become very large
  181. syn sync clear
  182. syn sync minlines=100
  183. syn sync maxlines=500
  184.  
  185. syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
  186. syn sync match spupSyncCdi        grouphere spupCdi        "^CDI"
  187. syn sync match spupSyncConditions grouphere spupConditions "^CONDITIONS"
  188. syn sync match spupSyncDeclare    grouphere spupDeclare    "^DECLARE"
  189. syn sync match spupSyncEstimation grouphere spupEstimation "^ESTIMATION"
  190. syn sync match spupSyncExternal   grouphere spupExternal   "^EXTERNAL"
  191. syn sync match spupSyncFlowsheet  grouphere spupFlowsheet  "^FLOWSHEET"
  192. syn sync match spupSyncFunction   grouphere spupFunction   "^FUNCTION"
  193. syn sync match spupSyncGlobal     grouphere spupGlobal     "^GLOBAL"
  194. syn sync match spupSyncHomotopy   grouphere spupHomotopy   "^HOMOTOPY"
  195. syn sync match spupSyncMacro      grouphere spupMacro      "^MACRO"
  196. syn sync match spupSyncModel      grouphere spupModel      "^MODEL"
  197. syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
  198. syn sync match spupSyncOptions    grouphere spupOptions    "^OPTIONS"
  199. syn sync match spupSyncProcedure  grouphere spupProcedure  "^PROCEDURE"
  200. syn sync match spupSyncProfiles   grouphere spupProfiles   "^PROFILES"
  201. syn sync match spupSyncReport     grouphere spupReport     "^REPORT"
  202. syn sync match spupSyncTitle      grouphere spupTitle      "^TITLE"
  203. syn sync match spupSyncUnit       grouphere spupUnit       "^UNIT"
  204.  
  205. " Define the default highlighting.
  206. " For version 5.7 and earlier: only when not done already
  207. " For version 5.8 and later: only when an item doesn't have highlighting yet
  208. if version >= 508 || !exists("did_spup_syn_inits")
  209.     if version < 508
  210.         let did_spup_syn_inits = 1
  211.         command -nargs=+ HiLink hi link <args>
  212.     else
  213.         command -nargs=+ HiLink hi def link <args>
  214.     endif
  215.  
  216.     HiLink spupCdi        spupSection
  217.     HiLink spupConditions spupSection
  218.     HiLink spupDeclare    spupSection
  219.     HiLink spupEstimation spupSection
  220.     HiLink spupExternal   spupSection
  221.     HiLink spupFlowsheet  spupSection
  222.     HiLink spupFunction   spupSection
  223.     HiLink spupGlobal     spupSection
  224.     HiLink spupHomotopy   spupSection
  225.     HiLink spupMacro      spupSection
  226.     HiLink spupModel      spupSection
  227.     HiLink spupOperation  spupSection
  228.     HiLink spupOptions    spupSection
  229.     HiLink spupProcedure  spupSection
  230.     HiLink spupProfiles   spupSection
  231.     HiLink spupReport     spupSection
  232.     HiLink spupTitle      spupConstant  " this is correct, truly ;)
  233.     HiLink spupUnit       spupSection
  234.  
  235.     HiLink spupCdiSubs        spupSubs
  236.     HiLink spupConditionsSubs spupSubs
  237.     HiLink spupDeclareSubs    spupSubs
  238.     HiLink spupEstimationSubs spupSubs
  239.     HiLink spupExternalSubs   spupSubs
  240.     HiLink spupFlowsheetSubs  spupSubs
  241.     HiLink spupFunctionSubs   spupSubs
  242.     HiLink spupHomotopySubs   spupSubs
  243.     HiLink spupMacroSubs      spupSubs
  244.     HiLink spupModelSubs      spupSubs
  245.     HiLink spupOperationSubs  spupSubs
  246.     HiLink spupOptionsSubs    spupSubs
  247.     HiLink spupProcedureSubs  spupSubs
  248.     HiLink spupReportSubs     spupSubs
  249.     HiLink spupUnitSubs       spupSubs
  250.  
  251.     HiLink spupCode            Normal
  252.     HiLink spupComment         Comment
  253.     HiLink spupComment2        spupComment
  254.     HiLink spupConditional     Statement
  255.     HiLink spupConstant        Constant
  256.     HiLink spupError           Error
  257.     HiLink spupHelp            Normal
  258.     HiLink spupIdentifier      Identifier
  259.     HiLink spupNumber          Constant
  260.     HiLink spupOperator        Special
  261.     HiLink spupOpenBrace       spupError
  262.     HiLink spupSection         Statement
  263.     HiLink spupSpecial         spupTextprocGeneric
  264.     HiLink spupStreams         Type
  265.     HiLink spupString          Constant
  266.     HiLink spupSubs            Statement
  267.     HiLink spupSymbol          Special
  268.     HiLink spupTextprocError   Normal
  269.     HiLink spupTextprocGeneric PreProc
  270.     HiLink spupTypes           Type
  271.  
  272.     delcommand HiLink
  273. endif
  274.  
  275. let b:current_syntax = "spup"
  276.  
  277. " vim:ts=4
  278.